package negocio;

import dao.DaoException;
import dao.ProdutoDao;
import modelo.*;

public class GerenciadorProduto {

	public GerenciadorProduto() {

	}

	public void cadastrarProduto(Produto produto) throws NegocioException {
		GerenciadorAlmoxarifado gerenciadorAlmoxarifado = new GerenciadorAlmoxarifado();
		Almoxarifado almoxarifado = gerenciadorAlmoxarifado.carregaAlmoxarifado(produto.getAlmoxarifado().getCodigo());
		if(almoxarifado != null){
			try {
				ProdutoDao produtoDao = new ProdutoDao();
				produtoDao.inserir(produto);
				produtoDao.close();
			} catch (DaoException e) {
				e.printStackTrace();
				throw new NegocioException("Problema com a persistência do produto");
			}
		} else{
			throw new NegocioException("Problema com a persistência do produto: 'almoxarifado' inexistente");
		}
	}

	public void removerProduto(int codigo) throws NegocioException {
		try {
			ProdutoDao produtoDao = new ProdutoDao();
			produtoDao.remover(codigo);
			produtoDao.close();
		} catch (DaoException e) {
			e.printStackTrace();
			throw new NegocioException("Problema com a persistência do produto");
		}
		
	}

	public Produto carregaProduto(int codProduto) throws NegocioException {
		Produto produto = null;
		try {
			ProdutoDao produtoDao = new ProdutoDao();
			produto = produtoDao.buscar(codProduto);
			produtoDao.close();
		} catch (DaoException e) {
			e.printStackTrace();
			throw new NegocioException("Problema com a persistência ao carregar o produto");
		}
		return produto;
	}
}
